package org.orz.cloud.lock;

import org.orz.cloud.lock.zookeeper.ZkProperties;

/**
 * 分布式锁工厂对象接口
 * 以此来实现不同的分布式锁，比如目前有Zk的分布式锁工厂，如果后面要加入Redis分布式锁，
 * 就直接再加一个RedisLockFactory即可，不用更改原有的代码。
 */
public interface LockFactory<E> {

	/**
	 * 初始化锁对象
	 * @param property 分布式锁的配置信息
	 */
	void init(E property);

	/**
	 * 创建锁
	 * @return 锁对象
	 */
	Lock createLock();
}
